from pydantic import BaseModel
from typing import List

class FileListResponse(BaseModel):
    files: List[str]

class UploadResponse(BaseModel):
    message: str
    status: int

class DeleteRequest(BaseModel):
    object_name: str

class BatchDeleteRequest(BaseModel):
    object_names: List[str]

class DeleteResponse(BaseModel):
    deleted: List[str]

class ObjectMetaResponse(BaseModel):
    size: int
    last_modified: int
    etag: str
    content_type: str

class ExistsResponse(BaseModel):
    exists: bool

class ACLRequest(BaseModel):
    object_name: str
    acl: str

class ACLResponse(BaseModel):
    acl: str

class SignedUrlRequest(BaseModel):
    object_name: str
    expires: int = 3600

class SignedUrlResponse(BaseModel):
    url: str

class CopyObjectRequest(BaseModel):
    source_object_name: str
    target_object_name: str

class CopyObjectResponse(BaseModel):
    status: int
    etag: str

class BatchDownloadRequest(BaseModel):
    object_names: List[str] 